package com.car.rental.auth.service;

import com.car.rental.auth.model.request.LoginRequest;
import com.car.rental.auth.model.request.RegisterRequest;
import com.car.rental.auth.model.response.LoginResponse;
import com.car.rental.common.core.response.ResponseResult;

public interface AuthService {
    
    /**
     * 用户注册
     * @param registerRequest 注册请求
     * @return 注册结果
     */
    ResponseResult<Void> register(RegisterRequest registerRequest);
    
    /**
     * 用户登录
     * @param loginRequest 登录请求
     * @return 登录结果（包含token等信息）
     */
    ResponseResult<LoginResponse> login(LoginRequest loginRequest);
    
    /**
     * 用户登出
     * @param token 用户token
     * @return 登出结果
     */
    ResponseResult<Void> logout(String token);
    
    /**
     * 验证token
     * @param token 用户token
     * @return 验证结果
     */
    ResponseResult<Boolean> validateToken(String token);
    
    /**
     * 根据token获取用户信息
     * @param token 用户token
     * @return 用户信息
     */
    ResponseResult<LoginResponse> getUserInfo(String token);
} 